#ifndef BGDDIALOG_H
#define BGDDIALOG_H

#include <QDialog>
#include<QDomElement>
#include<QDomDocument>

class QDialogButtonBox;
class QTabWidget;

class QTableWidget;
class QLabel;
class QLineEdit;
class QGroupBox;
class QPushButton;
class QGridLayout;


//teraz funkcja tla jest stala, jest przechowywana w pamieci
class GeneralTab : public QWidget
{
    Q_OBJECT

public:
    GeneralTab(QDomElement &dialogNode, QWidget *parent = 0);
public slots:
//wezly cparams
    void addRow();
    void remRow();
    void readAddedRow();
    void changeCP();
    void changeGradient();
//zmiana ogolna tla
    void changeBackground();
//wezel solid i inne
    void setColor();
    void setColorButton();
    void setSolidRgb(QString);
    void setSolidAlpha(QString);
signals:
    void rowChangeAdd(int);
    void rowChangeRem(int);
    void setCP (int, int);
    void rgbChanged(QString);
    void dataChanged();
//grupy przyciskow, grupa user jeszcze nie zrobiona, w grupie gradient brakuje
//odpowiedniej walidacji
private:
    QGroupBox *buttons1();
    QGroupBox *solidButton;
        QLabel *colorLabel;
        QLabel *alphaLabel;
        QLineEdit *alphaLine;
        QPushButton *colorButton;
   QGroupBox *buttons2();
   QGroupBox *gradientButton;
        QTableWidget *tableCP ;
        QPushButton *addCPButton;
        QPushButton *remCPButton;
        QTableWidget* createCpTable();
        QGridLayout *createGradLayout();
        QGridLayout *gradLayout;
   QGroupBox *buttons3();
   QGroupBox *userButton;
        QPushButton* imgButton;
        QLabel* imgLabel;
        QPushButton *animationButton;
        QPushButton *textButton;
private:
   QDomElement background;
   QDomElement gradient;
   QDomElement solid;
   QVector <QDomAttr*> cpV;
   QVector <QDomAttr*> gradV;
   void fillGradV();
   void fillCpV();


   
private: //nie uzywam
     QTableWidget* readGrad();
     QTableWidget *tableGrad;
public slots:
         void changeGrad();
};
//niezalezne okno, wyslanie sygnalow
//konsola jeszcze nie dziala jak trzeba
class XmlTab : public QWidget
{
    Q_OBJECT

public:
    XmlTab(QDomElement &dialogNode, QWidget *parent = 0);

};


//jeszcze trzeba ustawienia dialogu ustawic oraz opcje default, i przyciski ok i cancel
//moze gleboka kopia?
class bgdDialog : public QDialog
{
    Q_OBJECT

public:
    bgdDialog(QDomDocument &rootNode, QWidget *parent = 0);
    QTabWidget *tabWidget;
public slots:
    void newXml();
    void wybierzVar();///
signals:
    void wybierz();///
private:
    QDialogButtonBox *buttonBox;
    QDomElement background;
    QDomElement solid;
    QDomElement gradient;
    QDomElement user;

    private:


};

#endif // BGDDIALOG_H
